#pragma once

#include "BeanieCore.h"
#include "ClockPhysics.h"

class GameBody
{
public:
	//attributes
	clkObject* m_body;

	//ctor & dtor
	GameBody(){m_body = 0;}
	~GameBody(){}

	//main functions
	void initObject(clkObject* a_body)
	{m_body = a_body;}

	//applyers
	void applyLinearForce(V2DF a_frc)
	{m_body->applyLinearForce(a_frc);}

	void applyAngularForce(float a_frc)
	{m_body->applyAngularForce(a_frc);}

	//setters
	void setPosition(V2DF a_pos)
	{m_body->setPosition(a_pos);}

	void setLinearVelocity(V2DF a_vel)
	{m_body->setLinearVelocity(a_vel);}

	void setAngularVelocity(float a_vel)
	{m_body->setAngularVelocity(a_vel);}

	void setLinearForce(V2DF a_frc)
	{m_body->setLinearForce(a_frc);}

	void setAngularForce(float a_frc)
	{m_body->setAngularForce(a_frc);}

	//getters
	V2DF  getPosition(){return m_body->getPosition();}
	float getRotation(){return m_body->getRotation();}
	V2DF  getLinearForce(){return m_body->getLinearForce();}
	V2DF  getAngularForce(){return m_body->getAngularForce();}
	V2DF  getDir(){return m_body->getDir();}
	V2DF* getNorms(){return m_body->getNorms();}
	V2DF* getAVerts(){return m_body->getAVerts();}
	V2DF* getRVerts(){return m_body->getRVerts();}
};